package internal

import (
	"github.com/google/wire"

	"go_user_manager/internal/adapters/controllers"
	"go_user_manager/internal/adapters/repository"
	svc "go_user_manager/internal/adapters/service"
	"go_user_manager/internal/domain/repo"
	"go_user_manager/internal/domain/service"
)

//nolint:all
var Provider = wire.NewSet(
	repository.NewUserRepo,

	wire.Bind(new(repo.IUserRepo), new(*repository.UserRepo)),

	svc.NewUserService,
	wire.Bind(new(service.IUserService), new(*svc.UserService)),

	controllers.NewHealthzController,
	controllers.NewUserController,
	controllers.NewAuthController,
)
